package com.hmkj.core.model.account;

import com.hmkj.core.exception.BussinessException;
import com.hmkj.core.po.account.AccountRecharge;
import com.hmkj.core.po.user.User;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;

/**
 * Created by Donfy on 2017/6/20.
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class RechargeModel extends AccountRecharge {
    /**
     * 银行卡id
     */
    private Integer userBankId;
    /**
     * 银行编码
     **/
    private String bankCode;
    /**
     * 银行卡号
     **/
    private String bankNo;
    /**
     * 手机号
     */
    private String mobilePhone;

    /**
     * 充值用户数量
     */
    private Long rechargeNum;
    /**
     * 总充值金额
     */
    private BigDecimal totalAmo;

    /**
     * 充值短信
     */
    private String smsCode;
    /**
     * 请求短信后返回的参数
     */
    private String txnTime;
    /**
     * 订单号
     */
    private String orderNo;

    private User u;

    public void checkRecharge() {
        if (getAmount() == null) throw new BussinessException("充值金额不能为空");
        if (getAmount().compareTo(BigDecimal.ZERO) != 1) throw new BussinessException("充值金额必须大于0");
    }

//    /**
//     * 格式化充值记录
//     *
//     * @param userId        操作用户id
//     * @param userBank      操作用户银行卡信息
//     * @param account        操作金额
//     * @param actualArrival 实际到账金额
//     * @param fee           手续费
//     * @param status        待审核/通过/不通过
//     * @return
//     */
//    public static Recharge formatEntity(Integer userId, UserBank userBank, BigDecimal account, BigDecimal actualArrival, BigDecimal fee, STATUS status, String orderNo) {
//        Recharge r = new Recharge();
//        r.setUserId(userId);
//        r.setBankName(userBank.getBankName());
//        r.setBankNo(userBank.getBankNo());
//        r.setBranch(userBank.getBranch());
//        r.setAmount(account);
//        r.setActualArrival(actualArrival);
//        r.setFee(fee);
//        r.setStatus(status.code);
//        r.setOrderNo(orderNo);
//        return r;
//    }
}
